package io.jee.medusa.orm.pager.annotation;

import static io.jee.medusa.orm.pager.RelationType.AND;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import io.jee.medusa.orm.pager.OperationType;
import io.jee.medusa.orm.pager.RelationType;


@Target({METHOD})
@Retention(RUNTIME)
public @interface Condition {
	
	/**
	 * 条件关系
	 * @return
	 */
	RelationType relation() default AND;
	
	/**
	 * 对应的字段名
	 * @return
	 */
	String fieldName() default "";
	
	/**
	 * 条件操作
	 * @return
	 */
	OperationType operation();
	
	/**
	 * 返回值如果为空，默认不加入条件，该值为true时，加入条件is null或者is not null
	 * @return
	 */
	boolean hasNull() default false;
	
	/**
	 * 对应字段是否是Set
	 * @return
	 */
	boolean hasJoin() default false;
	
}
